/**
 * 剩余参数 这个在js中运用非常的广泛 在ts中要注意类型的定义
 *  剩余参数会被收集成为一个数组 所以要注意用法上要收集成数组的形式收集
 */

function sum(...args: number[]): number {
	return args.reduce((before, after) => before + after, 0)
}

console.log(sum(1, 2, 3, 4, 5))

/**
 * 实现一个 数组的push方法  这里要注意的是 剩余参数的使用 剩余参数会被收集成为一个数组
 *  所以只要记住这一点 就很好用啦
 */
function push(arr: string[], ...args: string[]): void {
	let length = arr.push(...args)
	/**
	 * 复习：
	 *  数组的 push 方法  是有返回值的  返回的是插入成功之后数组的长度  也就是数组的length属性
	 */
	console.log('数组长度', length)
}

let array = ['jimmy', 'xuexue']

push(array, 'hello', 'world')
console.log('array', array)
